﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WebDAVInterface
{
    public class WebDAVMethods
    {
        /// <summary>
        /// Copy one or more target resources to a destination
        /// </summary>
        public const string BCopy = "BCOPY";

        /// <summary>
        /// Delete one or more target resources
        /// </summary>
        public const string BDelete = "BDELETE";

        /// <summary>
        /// Move one or more target resources to a destination
        /// </summary>
        public const string BMove = "BMOVE";

        /// <summary>
        /// Retrieve the properties of one or more target resources
        /// </summary>
        public const string BPropfind = "BPROPFIND";

        /// <summary>
        /// Used to set properties on one or more target resources
        /// </summary>
        public const string BProppatch = "BPROPPATCH";

        /// <summary>
        /// Creates a duplicate of the source resource identified by the Request-Uniform Resource Identifier (URI), in the destination resource identified by the Destination Header
        /// </summary>
        public const string Copy = "COPY";

        /// <summary>
        /// Deletes a resource at the specified Uniform Resource Identifier (URI). The DELETE method can be used to delete collection and property resources
        /// </summary>
        public const string Delete = "DELETE";

        /// <summary>
        /// Take out a lock of any access type on a resource so that another principal will not modify the resource while it is being edited
        /// </summary>
        public const string Lock = "LOCK";

        /// <summary>
        /// Creates a new collection at the location specified by the Request-Uniform Resource Identifier (URI)
        /// </summary>
        public const string MKcol = "MKCOL";

        /// <summary>
        /// Move a resource to the location specified by a request Uniform Resource Identifier (URI)
        /// </summary>
        public const string Move = "MOVE";

        /// <summary>
        /// Called by the server whenever an event that the client has subscribed to fires
        /// </summary>
        public const string Notify = "NOTIFY";

        /// <summary>
        /// Either acknowledge that the client has received and responded to a particular event, or to query the server for any events that may have fired
        /// </summary>
        public const string Poll = "POLL";

        /// <summary>
        /// Retrieves properties for a resource identified by the request Uniform Resource Identifier (URI)
        /// </summary>
        public const string Propfind = "PROPFIND";

        /// <summary>
        /// Sets properties for the resource at the specified destination Uniform Resource Identifier (URI)
        /// </summary>
        public const string Proppatch = "PROPPATCH";

        /// <summary>
        /// Search a store for resources
        /// </summary>
        public const string Search = "SEARCH";
        
        /// <summary>
        /// Create a subscription to a resource
        /// </summary>
        public const string Subscribe = "SUBSCRIBE";

        /// <summary>
        /// Remove the lock on the resource at the request Uniform Resource Identifier (URI)
        /// </summary>
        public const string Unlock = "UNLOCK";

        /// <summary>
        /// End a subscription to a resource
        /// </summary>
        public const string Unsubscribe = "UNSUBSCRIBE";

        /// <summary>
        /// Enumerate the attachments of an e-mail message
        /// </summary>
        public const string XMSEnumatts = "X-MS-ENUMATTS";
    }
}
